#!/bin/bash


function JiaoYanShenFen()
{
    echo $dirname
    USER=$(whoami)
    if [ "$USER" != "root" ]; then
        clear
        echo "发现当前权限不够,需要提权,请输入密码!!提权完成后,请在本窗口按'向上'的方向键,再次运行本脚本!!!"
        sudo su
        
    else
        echo "当前身份是root！"
        echo "请再次输入当前系统密码:" && read sys_password && clear
        echo  你输入的系统密码是:${sys_password},请确认无误
        echo  你当前的身份是:$(whoami)
        
        # 判断讯飞的卷标是否是iFLYTEK
        lsblk -f | grep 'iFLYTEK' >/tmp/lv.log
        if [ -s '/tmp/lv.log' ]; then
            echo '在本机找到卷标为：iFLYTEK的设备,程序将向下执行';
            init
        else
            clear
            echo '找不到卷标为：iFLYTEK的设备，请检查更正！！！';
            echo #lsblk -f  #查看硬盘和分区信息,找到讯分的硬盘分区的编号,便于修改卷标
            echo  #sudo ntfslabel /dev/sda2 iFLYTEK #NTFS修改卷标
            echo  #sudo e2label /dev/sda2 iFLYTEK #EXt修改卷标
            exit 1;
        fi
    fi
}
#===================================================================

function init()
{
    rmdir /tmp/lv.log
    clear
    echo   "第一步: 初始化路径和变量 ================================================================"
    if [ ! -d $HOME/Desktop ];  then
        desktop_path=$HOME"/桌面"
    else
        desktop_path=$HOME"/Desktop"
        #echo "桌面目录:${desktop_path}"
    fi
    auto_exec_path=$HOME/.config/autostart  #开机启动项的目录是${auto_exec_path}
    lnk_path="/usr/share/applications"  #公共快捷方式目录${lnk_path}
    temp_path="/tmp/TempASR"  #局域网共享映射到本地的临时目录${temp_path}
    APP_path="/mnt/ASR" #讯飞引擎的根目录,注意:不是手动创建的,一定是通过命令挂载的1.5T的目录${APP_path}
    APP_exe_sh="startXunFei.sh" #讯飞启动脚本文件名称${APP_exe_sh}
    
    clear
    echo   "第二步: 判断1.5T的讯飞分区挂载状态,注意!!!不要手动创建/mnt/ASR目录: ======================"
    if [ ! -d ${APP_path} ]; then
        echo  "首先我们得到到这个分区的UUID,复制UUID"
        aaa=lsblk -f | grep iFLYTEK
        
        echo $aaa
        sleep 100000
        
        
        # Ubuntu V20的(冒号后面的):/dev/disk/by-uuid/3e06a42c-dcba-5740-9767-62f163de4d77 /mnt/ASR auto nosuid,nodev,nofail,x-gvfs-show,x-gvfs-name=ASR 0 0
        echo      '请复制UUID,并输入:'
        echo "  请输入上面的UUID:" && read AsrUuid
        GuaZaiPeiZhi="/dev/disk/by-uuid/${AsrUuid} /mnt/ASR auto nosuid,nodev,nofail,x-gvfs-show,x-gvfs-name=ASR 0 0"
        echo ${GuaZaiPeiZhi}>>/etc/fstab  #添加挂载配置到/etc/fstab
        echo '即将打开的/etc/fstab文件,请确认是否成功添加'
        gedit /etc/fstab
        clear
        echo      '最后使用mount -a命令看是否挂载成功'
        mount -a
        sleep 1
        #再次判断1.5T的分区是否挂载
        if [ ! -d ${APP_path} ]; then
            echo  "目录:${APP_path} 不存在,1.5T的分区挂载失败,20秒后将自动重启电脑,便于重新挂载......."
            sleep 20
            reboot
        fi
    fi
    
    clear
    echo   "第三步: 安装必要的软件 ================================================================="
    apt update     #更新安装列表
    apt install p7zip-full gcp mate-terminal openssh-server net-tools -y #安装:7z解压缩/带进度条复制工具/命令行窗口/ssh工具/ifconfig工具
    clear
    
    
    echo #  第四步: 判断讯飞临时挂载目录(/tmp/ASRTemp)是否存在 =====================================
    if [ ! -d ${temp_path} ]; then
        #讯飞临时挂载目录不存在,需先创建该目录并赋权限,便于后面挂载网络中的共享文件夹
        mkdir ${temp_path}
        chmod -R 777 ${temp_path}
    fi
    
    #判断讯飞临时挂载目录中的压缩包(iFlyTek.7)是否存在,不存在则需要挂载共享文件夹
    if [ ! -e ${temp_path}/iFlyTek.7z ]; then
        #不存在压缩包(iFlyTek.7),则挂载网络中指定IP的共享文件夹"XunFei"到本地的"${temp_path}"
        mount -t cifs -o username=administrator,password=123qwe //192.168.1.186/XunFei ${temp_path}
        sleep 1
        #延时2秒后,再次判断iFlyTek.7z是否存在(判断临时目录是否挂载成功,不成功则退出)
        if [ ! -e ${temp_path}/iFlyTek.7z ]; then
            echo ${temp_path}"/iFlyTek.7z 文件不存在,10秒后退出脚本,请排除错误后,再次运行我吧"
            sleep 10
            exit
        fi
    fi
    
    clear
    echo   "第4步: 判断1.5T的讯飞分区中的(iFlyTek.7z)是否存在 ====================================="
    if [ -e ${APP_path}/iFlyTek.7z ]; then
        echo ${APP_path}"/iFlyTek.7z文件已存在,将不会从共享文件中重新复制文件哦!"
        sleep 3
    else
        #复制共享文件夹中的"iFlyTek.7z"到讯飞分区"/mnt/"${temp_path}中,并赋权限e
        gcp -r ${temp_path}/iFlyTek.7z ${APP_path}/iFlyTek.7z
        chmod -R 777 ${APP_path}/iFlyTek.7z
    fi
    
    clear
    echo   "第5步: 解压(iFlyTek.7z)文件到当前目录 ================================================="
    7z x ${APP_path}/iFlyTek.7z -r -o${APP_path}/   #解压,请注意"-o"参数后面是没有空格的
    chmod -R 777 ${APP_path}
    
    #clear
    echo   "第6步: 初始化讯飞引擎 ==============================================================="
    cd ${APP_path}/iFlyTek
    pwd
    ./install_dog.sh  #安装加密狗驱动
    cp limits.conf /etc/security/
    ./configure_env.sh  #初始化配置文件
    
    
    
    clear
    echo   "第7步: 创建快捷方式和启动项 ========================================================="
    #==========7.1 创建startXunFei.sh脚本文件 =======================================
    rm -rf $HOME/${APP_exe_sh}
    touch $HOME/${APP_exe_sh}
    echo "#!/bin/sh"> $HOME/${APP_exe_sh}
    echo 'echo '${sys_password}' |sudo -S mate-terminal -x bash -c '${APP_path}/iFlyTek/'startEngine.sh' >> $HOME/${APP_exe_sh}
    echo 'ps -ef | grep iat'>>$HOME/${APP_exe_sh}
    
    
    #sudo cp $HOME/startXunFei.desktop${auto_exec_path}  #复制快捷方式到开机启动项
    #sudo chmod 777 $HOME/${APP_exe_sh}
    
    
    #==========7.2 创建桌面快捷方式 =================================================
    rm -rf $HOME/startXunFei.desktop
    touch $HOME/startXunFei.desktop
    echo "[Desktop Entry]">$HOME/startXunFei.desktop
    echo "Type=Application">>$HOME/startXunFei.desktop
    echo "Exec="$HOME/${APP_exe_sh}>>$HOME/startXunFei.desktop
    echo "Hidden=false">> $HOME/startXunFei.desktop
    echo "NoDisplay=false">>$HOME/startXunFei.desktop
    echo "X-GNOME-Autostart-enabled=true">>$HOME/startXunFei.desktop
    echo "Name[zh_CN]=语音引擎服务">>$HOME/startXunFei.desktop
    echo "Name=语音引擎服务">>$HOME/startXunFei.desktop
    echo "Comment[zh_CN]=用于启动语音引擎服务的">>$HOME/startXunFei.desktop
    echo "Comment=用于启动语音引擎服务的">>$HOME/startXunFei.desktop
    
    rm -rf ${auto_exec_path}/startXunFei.desktop
    cp $HOME/startXunFei.desktop ${auto_exec_path}  #复制快捷方式到开机启动项
    #sudo rm -rf ${lnk_path}/startXunFei.desktop
    #sudo cp $HOME/startXunFei.desktop ${lnk_path}  #复制快捷方式到图标目录
    
    chmod 777 $HOME/${APP_exe_sh}
    chmod 777 $HOME/startXunFei.desktop
    chmod 777 ${auto_exec_path}/startXunFei.desktop
    #sudo chmod 777 ${lnk_path}/startXunFei.desktop
    
    echo ============恭喜你,全部结束,可以重启电脑后,执行:"ps -ef | grep iat"查看启动状态===========================================
    
}

JiaoYanShenFen
